package com.durian.base.net;

import androidx.lifecycle.LifecycleObserver;

import com.durian.base.net.cache.IHttpCache;

/**
 * 说明：IHttpTask
 * <p/>
 * 作者：fanly
 * <p/>
 * 类型：Class
 * <p/>
 * 时间：2019/1/30 17:40
 * <p/>
 * 版本：version 1.0
 */
public interface IHttpTask extends Runnable , LifecycleObserver , IHttpCache {

    /**
     * 开启任务
     * @return
     */
    IHttpTask start();

    /**
     * 开始执行任务，在主线程执行
     */
    void onStartTask();

    /**
     * 执行任务成功，在主线程执行
     */
    void onSuccessTask(HttpResponse response);

    /**
     * 执行任务错误，在主线程执行
     */
    void onErrorTask(int errorCode, Exception e);

    /**
     * 取消任务
     */
    void cancelTask();

    /**
     * 获取任务ID
     * @return
     */
    String getTaskId();

    /**
     * 获取Url
     * @return
     */
    String getUrl();
}
